import 'package:syria_sports/data/controllers/users_controller.dart';

import '../../core/app_export.dart';
import '../../widgets/app_bar/appbar_subtitle.dart';
import '../../widgets/app_bar/custom_app_bar.dart';
import '../../widgets/app_bar/outline_icon_button.dart';
import 'settings_cubit.dart';
import 'package:flutter/material.dart';

class SettingsScreen extends StatelessWidget {
  const SettingsScreen({super.key});

  @override
  Widget build(BuildContext context) {
    double height = MediaQuery.of(context).size.height;
    double width = MediaQuery.of(context).size.width;

    return Scaffold(
      appBar: _buildAppBar(context),
      body: BlocProvider<SettingsCubit>(
        create: (context) => SettingsCubit(),
        child: BlocConsumer<SettingsCubit, SettingsState>(
          listener: (context, state) {
            // TODO: implement listener
          },
          builder: (context, state) {
            var cubit = SettingsCubit.get(context);
            var isQRQuickAccessEnabled = PrefUtils.isQRQuickAccessEnabled();
            var darkMode = ((PrefUtils.getThemeData() == 'dark')? 'primary': 'dark');
            var isDarkModeEnabled = ((PrefUtils.getThemeData() == 'dark')? true: false);
            return Container(
              height: height,
              width: width,
              decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage(ImageConstant.imgBackground),
                  fit: BoxFit.cover,
                ),
              ),
              child: Column(
                children: [
                  SwitchListTile(
                    title: const Text('ميزة الوصول السريع QR'),
                    subtitle: Text(isQRQuickAccessEnabled
                        ? 'ميزة الوصول السريع مفعلة'
                        : 'ميزة الوصول السريع معطلة'),
                    value: isQRQuickAccessEnabled,
                    onChanged: (bool value) {
                        PrefUtils.changeQRQuickAccessEnabled();
                        cubit.changeQRQuickAccessEnabled();
                    },
                    activeColor: Colors.green,
                    inactiveThumbColor: Colors.red,
                    inactiveTrackColor: Colors.grey,
                  ),
                  SwitchListTile(
                    title: const Text('الوضع المظلم'),
                    subtitle: Text(isDarkModeEnabled
                        ? 'ميزة الوضع المظلم مفعلة'
                        : 'ميزة الوضع المظلم معطلة'),
                    value: isDarkModeEnabled,
                    onChanged: (bool value) {
                      ThemeBloc themeCubit = BlocProvider.of(context);
                      themeCubit.add(ThemeChangeEvent(themeType:darkMode));
                      cubit.changeQRQuickAccessEnabled();
                    },
                    activeColor: Colors.green,
                    inactiveThumbColor: Colors.red,
                    inactiveTrackColor: Colors.grey,
                  ),
                  if(PrefUtils.isLogged())
                  SwitchListTile(
                    title: const Text('الظهور للعامة'),
                    subtitle: Text(PrefUtils.myPrivacy()
                        ? 'قد يظهر ملفك الشخصي وتقيمك على المنصة في قسم TOP20 للعامة'
                        : 'لن يشاهد احد بياناتك عدا المدربين الذين يعملون في نفس النادي الذي قمت بالاشتراك فيه'),
                    value: PrefUtils.myPrivacy(),
                    onChanged: (bool value) async{
                      PrefUtils.changeMyPrivacy();
                      await UsersController.changeMyPrivacy(value);
                      cubit.changeQRQuickAccessEnabled();
                    },
                    activeColor: Colors.green,
                    inactiveThumbColor: Colors.red,
                    inactiveTrackColor: Colors.grey,
                  ),
                ],
              ),
            );
          },
        ),
      ),
    );
  }

  /// Section Widget
  PreferredSizeWidget _buildAppBar(BuildContext context) {
    return CustomAppBar(
      leading: OutlineIconButton(
        imagePath: ImageConstant.imgRightIcon,
        onTapped: () {
          Navigator.pop(context);
        },
      ),
      title: AppbarSubtitle(
        text: "الكود الشخصي".tr,
        margin: EdgeInsets.only(left: 12.h),
      ),
    );
  }
}
